﻿using System;

// Abstract Factory pattern -- Structural example 

namespace DoFactory.GangOfFour.Abstract.Structural
{
    /// <summary>
    /// Program startup class for Structural
    /// Abstract Factory Design Pattern.
    /// </summary>
    class Program
    {
        /// <summary>
        /// Entry point into console application.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            
            AbstractFactory factory1 = new ConcreteSedan();
            AbstractFactory factory2 = new ConcreteMini();
            AbstractFactory factory3 = new ConcreteCoupe();
            
            
            Client client1 = new Client(factory1,factory2,factory3);
            client1.afisare();

            Console.WriteLine("\n\n\nSe va sterge o masina....Introduceti numele masinii:");
            client1.sterge(Console.ReadLine());

            Console.WriteLine("Au ramas:");
            client1.afisare();

            Console.ReadKey();
        }
    }
}
